Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2장. 왜 동영상을 잘게 나누는가

2.1 동영상을 “쪼개서” 전달한다는 것의 의미

HLS는 동영상을 하나의 파일로 다루지 않는다.

대신 다음과 같이 처리한다.

동영상을 짧은 시간 단위의 조각으로 나누고, 이를 순차적으로 전달한다

이 개념을 쉽게 이해하려면 이렇게 생각하면 된다.

HLS는 방송 영상을
한 편의 긴 영화 파일이 아니라
짧은 영상 클립들의 집합으로 다룬다.

예를 들어 10초짜리 영상이라면:

  • 0~2초
  • 2~4초
  • 4~6초
  • 6~8초
  • 8~10초

이렇게 여러 개의 조각으로 나뉜다.

플레이어는 이 조각들을:

순서대로 하나씩 다운로드하면서 동시에 재생한다

즉, 전체 영상을 한 번에 받는 것이 아니라
조각 단위로 이어 붙이면서 재생하는 구조다.


2.2 왜 굳이 잘게 나누는가

이 구조는 단순한 구현 방식이 아니라
스트리밍의 문제를 해결하기 위한 핵심 설계다.

2.2.1 네트워크 불안정에 대한 대응

인터넷 환경은 항상 안정적이지 않다.

  • 속도가 순간적으로 떨어질 수 있고
  • 패킷 손실이 발생할 수 있으며
  • 연결이 일시적으로 끊길 수도 있다

만약 하나의 큰 파일을 전송하는 구조라면:

  • 다운로드 중단 시 전체 흐름이 끊기고
  • 재시작 비용이 매우 크다

반면 HLS처럼 조각 단위로 나누면:

  • 일부 조각만 실패
  • 다음 조각부터 다시 요청 가능

즉,

문제를 “전체 실패”에서 “부분 실패”로 축소한다

이것이 HLS가 안정적인 이유다.


2.2.2 요청 기반 구조와의 자연스러운 결합

HLS는 HTTP 요청 기반 구조다.

이 구조에서는:

  • 요청 → 응답 → 종료
  • 다시 요청 → 응답 → 종료

이 흐름이 반복된다.

동영상을 조각으로 나누면 이 구조에 딱 맞는다.

  • 조각 하나 = 요청 하나
  • 요청 단위로 처리 가능

즉,

조각 단위 구조는 HTTP의 특성과 정확히 맞물린다


2.3 적응형 비트레이트 (ABR)의 필요성

네트워크는 항상 일정하지 않다.

  • 어떤 순간에는 10Mbps
  • 어떤 순간에는 2Mbps

이 상황에서 항상 고화질 영상을 보내면:

  • 버퍼링 발생
  • 재생 끊김 발생

반대로 항상 저화질이면:

  • 화질 낭비
  • 사용자 경험 저하

이 문제를 해결하기 위해 등장한 개념이

적응형 비트레이트 (Adaptive Bitrate, ABR)

이다.


2.4 ABR이 가능한 이유

ABR은 HLS의 “조각 구조” 덕분에 가능하다.

핵심은 이것이다:

각 조각이 독립적인 영상 단위로 존재한다

즉, 같은 시간 구간이라도
여러 화질 버전이 존재할 수 있다.

예를 들어:

시간 구간1080p720p480p
0~2초seg1_1080seg1_720seg1_480
2~4초seg2_1080seg2_720seg2_480

플레이어는 다음과 같은 선택이 가능하다.

  • seg1은 1080p로 재생
  • seg2는 720p로 전환

즉,

다음 조각부터 화질을 바꿀 수 있다

이것이 ABR의 핵심이다.


2.5 ABR의 동작 원리

플레이어는 단순히 랜덤으로 화질을 바꾸지 않는다.

다음 요소들을 기반으로 판단한다.

1) 다운로드 속도

플레이어는 조각을 다운로드하면서
속도를 측정한다.

예:

  • seg1 다운로드: 0.3초 → 빠름
  • seg2 다운로드: 1.5초 → 느림

2) 버퍼 상태

  • 버퍼가 충분하면 → 고화질 유지
  • 버퍼가 줄어들면 → 화질 낮춤

3) 네트워크 변화

속도가 떨어지면:

  • 다음 조각부터 낮은 화질 선택

속도가 올라가면:

  • 다시 높은 화질로 전환

2.6 ABR의 실제 동작 흐름

플레이어 내부에서는 다음과 같은 흐름이 반복된다.

  1. 현재 화질로 segment 요청
  2. 다운로드 시간 측정
  3. 네트워크 상태 계산
  4. 다음 segment 화질 결정

이 과정을 통해:

끊김 없이 가능한 최고 화질을 유지하려고 시도한다